/*

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

*/
module derelict.devil.functions;

private
{
    import derelict.devil.types;
}

extern(System)
{
    alias nothrow ILboolean function (ILuint) da_ilActiveImage;
    alias nothrow ILboolean function(ILuint) da_ilActiveLayer;
    alias nothrow ILboolean function(ILuint) da_ilActiveMipmap;
    alias nothrow ILboolean function(ILconst_string) da_ilApplyPal;
    alias nothrow ILboolean function(ILstring, ILstring) da_ilApplyProfile;
    alias nothrow ILvoid function(ILuint) da_ilBindImage;
    alias nothrow ILboolean function(ILuint, ILint, ILint, ILint, ILuint, ILuint, ILuint, ILuint, ILuint, ILuint) da_ilBlit;
    alias nothrow ILvoid function(ILclampf, ILclampf, ILclampf, ILclampf) da_ilClearColour;
    alias nothrow ILboolean function() da_ilClearImage;
    alias nothrow ILuint function() da_ilCloneCurImage;
    alias nothrow ILboolean function(ILenum) da_ilCompressFunc;
    alias nothrow ILboolean function(ILenum, ILenum) da_ilConvertImage;
    alias nothrow ILboolean function(ILenum) da_ilConvertPal;
    alias nothrow ILboolean function(ILuint) da_ilCopyImage;
    alias nothrow ILuint function(ILuint, ILuint, ILuint, ILuint, ILuint, ILuint, ILenum, ILenum, ILvoid*) da_ilCopyPixels;
    alias nothrow ILuint function(ILenum, ILuint) da_ilCreateSubImage;
    alias nothrow ILboolean function() da_ilDefaultImage;
    alias nothrow ILvoid function(ILuint) da_ilDeleteImage;
    alias nothrow ILvoid function(ILsizei, in ILuint*) da_ilDeleteImages;
    alias nothrow ILboolean function(ILenum) da_ilDisable;
    alias nothrow ILboolean function(ILenum) da_ilEnable;
    alias nothrow ILboolean function(ILenum) da_ilFormatFunc;
    alias nothrow ILvoid function(ILsizei, ILuint*) da_ilGenImages;
    alias nothrow ILuint function() da_ilGenImage;
    alias nothrow ILubyte* function(ILenum) da_ilGetAlpha;
    alias nothrow ILboolean function(ILenum) da_ilGetBoolean;
    alias nothrow ILvoid function(ILenum, ILboolean*) da_ilGetBooleanv;
    alias nothrow ILubyte* function() da_ilGetData;
    alias nothrow ILuint function(ILvoid*, ILuint, ILenum) da_ilGetDXTCData;
    alias nothrow ILenum function() da_ilGetError;
    alias nothrow ILint function(ILenum) da_ilGetInteger;
    alias nothrow ILvoid function(ILenum, ILint*) da_ilGetIntegerv;
    alias nothrow ILuint function() da_ilGetLumpPos;
    alias nothrow ILubyte* function() da_ilGetPalette;
    alias nothrow ILstring function(ILenum) da_ilGetString;
    alias nothrow ILvoid function(ILenum, ILenum) da_ilHint;
    alias nothrow ILvoid function() da_ilInit;
    alias nothrow ILboolean function(ILenum) da_ilIsDisabled;
    alias nothrow ILboolean function(ILenum) da_ilIsEnabled;
    alias nothrow ILenum function(ILHANDLE) da_ilDetermineTypeF;
    alias nothrow ILboolean function(ILuint) da_ilIsImage;
    alias nothrow ILboolean function(ILenum, ILstring) da_ilIsValid;
    alias nothrow ILboolean function(ILenum, ILHANDLE) da_ilIsValidF;
    alias nothrow ILboolean function(ILenum, ILvoid*, ILuint) da_ilIsValidL;
    alias nothrow ILvoid function(ILclampf, ILclampf, ILclampf, ILclampf) da_ilKeyColour;
    alias nothrow ILboolean function(ILenum, ILconst_string) da_ilLoad;
    alias nothrow ILboolean function(ILenum, ILHANDLE) da_ilLoadF;
    alias nothrow ILboolean function(ILconst_string) da_ilLoadImage;
    alias nothrow ILboolean function(ILenum, in ILvoid*, ILuint) da_ilLoadL;
    alias nothrow ILboolean function(ILconst_string) da_ilLoadPal;
    alias nothrow ILvoid function(ILdouble) da_ilModAlpha;
    alias nothrow ILboolean function(ILenum) da_ilOriginFunc;
    alias nothrow ILboolean function(ILuint, ILint, ILint, ILint) da_ilOverlayImage;
    alias nothrow ILvoid function() da_ilPopAttrib;
    alias nothrow ILvoid function(ILuint) da_ilPushAttrib;
    alias nothrow ILvoid function(ILenum) da_ilRegisterFormat;
    alias nothrow ILboolean function(ILconst_string, IL_LOADPROC) da_ilRegisterLoad;
    alias nothrow ILboolean function(ILuint) da_ilRegisterMipNum;
    alias nothrow ILboolean function(ILuint) da_ilRegisterNumImages;
    alias nothrow ILvoid function(ILenum) da_ilRegisterOrigin;
    alias nothrow ILvoid function(ILvoid*, ILuint, ILenum) da_ilRegisterPal;
    alias nothrow ILboolean function(ILconst_string, IL_SAVEPROC) da_ilRegisterSave;
    alias nothrow ILvoid function(ILenum) da_ilRegisterType;
    alias nothrow ILboolean function(ILconst_string) da_ilRemoveLoad;
    alias nothrow ILboolean function(ILconst_string) da_ilRemoveSave;
    alias nothrow ILvoid function() da_ilResetRead;
    alias nothrow ILvoid function() da_ilResetWrite;
    alias nothrow ILboolean function(ILenum, ILconst_string) da_ilSave;
    alias nothrow ILuint function(ILenum, ILHANDLE) da_ilSaveF;
    alias nothrow ILboolean function(ILconst_string) da_ilSaveImage;
    alias nothrow ILuint function(ILenum, ILvoid*, ILuint) da_ilSaveL;
    alias nothrow ILboolean function(ILconst_string) da_ilSavePal;
    alias nothrow ILboolean function(ILdouble) da_ilSetAlpha;
    alias nothrow ILboolean function(ILvoid*) da_ilSetData;
    alias nothrow ILboolean function(ILuint) da_ilSetDuration;
    alias nothrow ILvoid function(ILenum, ILint) da_ilSetInteger;
    alias nothrow ILvoid function(mAlloc, mFree) da_ilSetMemory;
    alias nothrow ILvoid function(ILint, ILint, ILint, ILuint, ILuint, ILuint, ILenum, ILenum, ILvoid*) da_ilSetPixels;
    alias nothrow ILvoid function(fOpenRProc, fCloseRProc, fEofProc, fGetcProc, fReadProc, fSeekRProc, fTellRProc) da_ilSetRead;
    alias nothrow ILvoid function(ILenum, in char*) da_ilSetString;
    alias nothrow ILvoid function(fOpenWProc, fCloseWProc, fPutcProc, fSeekWProc, fTellWProc, fWriteProc) da_ilSetWrite;
    alias nothrow ILvoid function() da_ilShutDown;
    alias nothrow ILboolean function(ILuint, ILuint, ILuint, ILubyte, ILenum, ILenum, ILvoid*) da_ilTexImage;
    alias nothrow ILenum function(ILconst_string) da_ilTypeFromExt;
    alias nothrow ILboolean function(ILenum) da_ilTypeFunc;
    alias nothrow ILboolean function(ILconst_string, ILuint, ILuint, ILuint, ILubyte) da_ilLoadData;
    alias nothrow ILboolean function(ILHANDLE, ILuint, ILuint, ILuint, ILubyte) da_ilLoadDataF;
    alias nothrow ILboolean function(ILvoid*, ILuint, ILuint, ILuint, ILuint, ILubyte) da_ilLoadDataL;
    alias nothrow ILboolean function(ILconst_string) da_ilSaveData;
}

__gshared
{
    da_ilActiveImage ilActiveImage;
    da_ilActiveLayer ilActiveLayer;
    da_ilActiveMipmap ilActiveMipmap;
    da_ilApplyPal ilApplyPal;
    da_ilApplyProfile ilApplyProfile;
    da_ilBindImage ilBindImage;
    da_ilBlit ilBlit;
    da_ilClearColour ilClearColour;
    da_ilClearImage ilClearImage;
    da_ilCloneCurImage ilCloneCurImage;
    da_ilCompressFunc ilCompressFunc;
    da_ilConvertImage ilConvertImage;
    da_ilConvertPal ilConvertPal;
    da_ilCopyImage ilCopyImage;
    da_ilCopyPixels ilCopyPixels;
    da_ilCreateSubImage ilCreateSubImage;
    da_ilDefaultImage ilDefaultImage;
    da_ilDeleteImage ilDeleteImage;
    da_ilDeleteImages ilDeleteImages;
    da_ilDisable ilDisable;
    da_ilEnable ilEnable;
    da_ilFormatFunc ilFormatFunc;
    da_ilGenImages ilGenImages;
    da_ilGenImage ilGenImage;
    da_ilGetAlpha ilGetAlpha;
    da_ilGetBoolean ilGetBoolean;
    da_ilGetBooleanv ilGetBooleanv;
    da_ilGetData ilGetData;
    da_ilGetDXTCData ilGetDXTCData;
    da_ilGetError ilGetError;
    da_ilGetInteger ilGetInteger;
    da_ilGetIntegerv ilGetIntegerv;
    da_ilGetLumpPos ilGetLumpPos;
    da_ilGetPalette ilGetPalette;
    da_ilGetString ilGetString;
    da_ilHint ilHint;
    da_ilInit ilInit;
    da_ilIsDisabled ilIsDisabled;
    da_ilIsEnabled ilIsEnabled;
    da_ilDetermineTypeF ilDetermineTypeF;
    da_ilIsImage ilIsImage;
    da_ilIsValid ilIsValid;
    da_ilIsValidF ilIsValidF;
    da_ilIsValidL ilIsValidL;
    da_ilKeyColour ilKeyColour;
    da_ilLoad ilLoad;
    da_ilLoadF ilLoadF;
    da_ilLoadImage ilLoadImage;
    da_ilLoadL ilLoadL;
    da_ilLoadPal ilLoadPal;
    da_ilModAlpha ilModAlpha;
    da_ilOriginFunc ilOriginFunc;
    da_ilOverlayImage ilOverlayImage;
    da_ilPopAttrib ilPopAttrib;
    da_ilPushAttrib ilPushAttrib;
    da_ilRegisterFormat ilRegisterFormat;
    da_ilRegisterLoad ilRegisterLoad;
    da_ilRegisterMipNum ilRegisterMipNum;
    da_ilRegisterNumImages ilRegisterNumImages;
    da_ilRegisterOrigin ilRegisterOrigin;
    da_ilRegisterPal ilRegisterPal;
    da_ilRegisterSave ilRegisterSave;
    da_ilRegisterType ilRegisterType;
    da_ilRemoveLoad ilRemoveLoad;
    da_ilRemoveSave ilRemoveSave;
    da_ilResetRead ilResetRead;
    da_ilResetWrite ilResetWrite;
    da_ilSave ilSave;
    da_ilSaveF ilSaveF;
    da_ilSaveImage ilSaveImage;
    da_ilSaveL ilSaveL;
    da_ilSavePal ilSavePal;
    da_ilSetAlpha ilSetAlpha;
    da_ilSetData ilSetData;
    da_ilSetDuration ilSetDuration;
    da_ilSetInteger ilSetInteger;
    da_ilSetMemory ilSetMemory;
    da_ilSetPixels ilSetPixels;
    da_ilSetRead ilSetRead;
    da_ilSetString ilSetString;
    da_ilSetWrite ilSetWrite;
    da_ilShutDown ilShutDown;
    da_ilTexImage ilTexImage;
    da_ilTypeFromExt ilTypeFromExt;
    da_ilTypeFunc ilTypeFunc;
    da_ilLoadData ilLoadData;
    da_ilLoadDataF ilLoadDataF;
    da_ilLoadDataL ilLoadDataL;
    da_ilSaveData ilSaveData;

    alias nothrow ilClearColour     ilClearColor;
    alias nothrow ilKeyColour       ilKeyColor;
}